package com.hup.vd.service.netSpeed;

import lombok.Getter;

/**
 * 简单的网速计数器,线程不安全的(允许的)
 * 需要ui线程定时[1秒],获取网速 {@link #doPick()}
 *
 * @author hugan
 * @date 2022/8/14
 */
public class NetSpeedCounter {

    /**
     * 实时已写入的流量,单位KB;
     * 由下载线程实时累加
     */
    private int totalKB;
    /**
     * 本次单位时间内产生的totalKB的备份值:一次备份,多次在ui使用,不影响下载线程
     * 由UI线程进行记录
     */
    @Getter
    private int lastPick;

    public void reset() {
        totalKB = 0;
        lastPick = 0;
    }

    public void add(int kb) {
        totalKB += kb;
    }

    /**
     * 记录当前流量值, 还原totalKB
     */
    public int doPick() {
        lastPick = totalKB;
        totalKB = 0;
        return lastPick;
    }

}
